import pandas as pd
#读取数据
df = pd.read_excel('gaokaochengji.xlsx')
print(df)

#1,。检查缺失值  isnull/notnull
print(df.isnull())
print(df.notnull())
print(df.isnull().sum())  #查看所有列缺失值个数，用素描（）
print(df['录取分数5'].isnull().sum()) #查看某一列缺失值个数


#2.处理缺失值
# 1）dropna()函数
print(df.dropna())  #删除有缺失的行
print(df.dropna(axis=1))  #删除有缺失的列
print(df.dropna(thresh=3)) #删除少于3的缺失值的行
print(df.dropna(subset=['录取分数3'])) #删除录取分数3包含缺失值的行
# 2）fillna()函数：替换缺失值
print(df.fillna(120))
print(df.fillna({'录取分数3':650,'录取分数5':699}))
df1=df.fillna(method='ffill')
df2=df1.fillna(method='bfill')
df2.to_excel('xin.xlsx')

#3.重复值处理
#1） 检查重复值 duplicated()
print('所有列的重复值：',df.duplicated())
print('检查录取分数2的重复值：',df.duplicated('录取分数2'))
print('统计所有重复值：',df.duplicated().sum())

#2) 删除重复值 drop_duplicates()
print('删除所有重复行，并重新设置索引：',df.drop_duplicates(keep=False,ignore_index=True))





#3.重复值处理
#1） 检查重复值 duplicated()
print('所有列的重复值：',df.duplicated())
print('检查录取分数2的重复值：',df.duplicated('录取分数2'))
print('统计所有重复值：',df.duplicated().sum())

#2) 删除重复值 drop_duplicates()
print('删除所有重复行，并重新设置索引：',df.drop_duplicates(keep=False,ignore_index=True))


# #数据的合并
# 1.数据的横向合并merge()
df1=pd.read_excel('gaokaochengji1.xlsx')
df1=pd.read_excel('gaokaochengji2.xlsx')
# 左合并
df3=pd.merge(df1,df2,how='left')
df4=pd.merge(df1,df2,how='right',on='学校')

# 2.数据的纵向合并concat（）
df00=pd.read_excel('~$1—3月入职员工信息.xlsx',index_col=0,sheet_name=['1月','2月','3月','1月员工补充信息'])
print(df00)
df11=pd.read_excel('~$1—3月入职员工信息.xlsx',index_col=0,sheet_name='1月')
df01=pd.read_excel('~$1—3月入职员工信息.xlsx',index_col=0,sheet_name='1员工补充信息')
df1122=pd.merge(df11,df01)
print(df1122)
df22=pd.read_exce('~$1—3月入职员工信息.xlsx',index_col=0,sheet_name='2月')
df22=pd.read_exce('~$1—3月入职员工信息.xlsx',index_col=0,sheet_name='3月')
df_t=pd.concat([df1122,df22,df33],ignore_index=True)

# #数据的聚合与分组
# 1.数据的聚合
arr = np.random.randint(1,20,size=(3,3))
print(arr)
df = pd.DataFrame(arr,columns=['a','b','c'])
print(df)
print('每列求和聚合：',df.agg('sum'))
print('每列求和及平局值聚合：',df.agg(['sum','mean']))